// 封装的防抖函数
export default function debounce (fn, delay = 200) {
  let timer = null // 计时器

  return function () {
    const th = this // 绑定 this
    const args = arguments // 函数中的参数

    // 如果存在定时器，就将其清除
    if (timer) {
      clearTimeout(timer)
    }

    // 设置定时器
    timer = setTimeout(function () {
      // 清空定时器
      timer = null
      // 调用函数
      fn.apply(th, args)
    }, delay)
  }
}
